"""
元组
    概述：
        它属于 容器类型中的一种，属于不可变类型
        它也是可以同时存储多个元素，可以是不同类型的，但是在实际开发中，建议存储相同类型的多个值
    特点：
        元组和列表的区别： 元组用小括号来表示，且元组的元素值不允许修改，（只能查，不能增删改）
    定义格式：
        t1 = (值1,值2,值3)      list1 = [值1,值2,值3]
        t2 = tuple()           list2 = list()
        t3 = (值1,)
        t4 = ()                list4 = []
    细节：
        1. 元素属于不可变类型，其元素值不可以被更改
        2. 元组和列表一样，也是有索引的概念的
        3. 定义元组的时候，如果只有一个值，则该值后面必须加逗号，否则，就是定义了一个普通变量（不是元组）

"""

t1 = (1,2,3)
t2 = (6,)
t3 = (6) # 不是元素，是int
t4 = tuple()
t5 = ()
print(t1,type(t1))
print(t2,type(t2))
print(t3,type(t3)) # int
print(t4,type(t4))
print(t5,type(t5))

print('=' * 30)
t6 = ('a','b','c','d','e','f','a')
print(t6)

# 查询
print(t6.index('a'))
print(f'元素t6中a的个数:{t6.count('a')}')
print(f'元组t6元素个数:{len(t6)}')
print(t6[0])

if 'b' in t6:
    print('t6包含b')

if 'c' not in t6:
    print('t6中不包含c')


# t6[0] = 'A'# 报错，因为元组不可变
print(t6)

# 遍历元组
# 方式一：通过迭代遍历
# for item in t6:
#     print(item)

# 方式二：通过索引遍历
for i in range(len(t6)):
    print(t6[i])
